package cn.yzgy.yzgyoa.ucenter.service;

import cn.yzgy.yzgyoa.ucenter.entity.SysOrganization;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 组织机构表
支持公司多级结构 服务类
 * </p>
 *
 * @author Yqsen
 * @since 2019-08-27
 */
public interface ISysOrganizationService extends IService<SysOrganization> {

    /**
     * 查询列表数据
     * @param ipage 数据页
     * @param wrapper 条件集
     * @return 列表数据页
     */
    IPage<SysOrganization> queryAll(IPage<SysOrganization> ipage, QueryWrapper<SysOrganization> wrapper);

    /**
     * 修改数据
     * @param sysOrganization 组织机构对象
     * @return 修改数据条数
     */
    int changeInfo(SysOrganization sysOrganization);

    /**
     * 根据主键修改现有主键Id
     * @param newId 准备修改为的主键id
     * @param oid 主键id
     * @return 根据数据权限标识修改现有主键Id
     */
    int updatePrimaryKey(Long newId,Long oid);

    /**
     * 根据主键删除数据
     * @param oid 主键
     * @return 删除数据条数
     */
    int delData(String oid);

    /**
     * 查重
     * @param sysOrganization 组织机构对象
     * @return 重复数量
     */
    int check(SysOrganization sysOrganization);

    /**
     * 获取父节点enabbr数据
     * @param sysOrganization 组织机构对象
     * @return 获取父节点enabbr数据
     */
    String getParentEnAbbr(SysOrganization sysOrganization);

    /**
     * 获取新增数据主键
     * @param sysOrganization 组织机构对象
     * @return 新增数据主键
     */
    String getNewid(SysOrganization sysOrganization);

    /**
     * 添加数据
     * @param sysOrganization 组织机构对象
     * @return 添加数据条数
     */
    int addSysOrganization(SysOrganization sysOrganization);

    /**
     * 获取EnAbbr数据
     * @param oid 主键ID
     * @return EnAbbr数据
     */
    String getEnAbbr(String oid);

    /**
     * 获取下拉数据
     * @return 获取下拉数据
     */
    List<SysOrganization> getSysOrganizationList(String enAbbr);

}
